package com.domus.dreamMenu.servidor.repositorios;

import com.domus.dreamMenu.tipos.excecoes.ChaveInexistenteException;

/**
 * Esta interface define métodos de acesso a dados. 
 * Deve ser especificado o tipo de dados que a classe que a implementa armazena.
 * Deve ser especificado o tipo da chave para consulta.
 * @author elihimas
 *
 * @param <ClasseDados> a classe que será armazenada.
 * @param <ClasseChave> a classe que será utilizada como chave
 */
public interface Repositorio <ClasseDados, ClasseChave>{

	public void inserir(ClasseDados novo);

	public void alterar(ClasseDados novo, ClasseChave chave);
	
	public void remover(ClasseChave chave);
	
	public ClasseDados consultar(ClasseChave chave) throws ChaveInexistenteException;
}
